package com.zte.market.service;

import com.zte.market.pojo.City;
import com.zte.market.pojo.Custom;
import com.zte.market.pojo.Province;
import com.zte.util.PageModel;

import java.util.Date;
import java.util.List;

/**
 * 客户
 * @Auther: 许月
 * @Date: 2022/10/02/13:54
 */
public interface CustomService {
    /**
     * 获取所有省
     * @return List<Province>
     */
    List<Province> getAllProvince();

    /**
     * 通过分配的服务人员查找所有的客户信息
     * @param serviceid
     * @return
     */
    List<Custom> getAllByServiceId(Integer serviceid);

    /**
     * 通过模糊查询 客户姓名 获取对应客户的 CustomId列表
     * @param customname
     * @return
     */
    List<Integer> queryCustomIdListByCustomname(String customname);

    /**
     * 获取所有客户信息
     * @return  List<Custom>
     */
    List<Custom> getAllCustom();

    /**
     * 添加客户
     * @param custom 客户对象
     * @return 添加是否成功
     */
    boolean addByCustom(Custom custom);

    /**
     * 将得到的数据进行分页处理
     * @param customList 查询总记录数
     * @param pageSize 页面尺寸
     * @param pageNum 当前页面号
     * @return
     */
    PageModel<Custom> queryByPage(List<Custom> customList,int pageSize,int pageNum);

    /**
     * 通过前端数据进行查询
     * @param custom 客户对象
     * @param cityList 城市集合
     * @param isAllot 是否被分配
     * @param pageSize 页面此尺寸
     * @param pageNum 当前页
     * @return 客户列表
     */
    PageModel<Custom> queryByParam(Custom custom, List<City> cityList, Integer isAllot,Integer pageSize, Integer pageNum);

    /**
     * 通过客户的id查询信息
     * @param customId 客户id
     * @return
     */
    Custom queryByCustomId(Integer customId);

    /**
     * 修改 客户的 服务人员 id
     * @param customId 客户id
     * @param serviceid 服务人员id
     * @param distractime 分配时间
     * @return
     */
    boolean updateServiceIdByCustomId(Integer customId, Integer serviceid,  Date distractime);


    /**
     * 修改客户
     * @param custom 客户信息
     * @return
     */
    boolean updateCustom(Custom custom);

    /**
     * 客服人员查询 客户
     * @param custom 客户查询信息
     * @param cityList 城市信息
     * @param isAllot 状态 -1（未选择状态）
     * @param pageSize 页面尺寸
     * @param pageNum 当前页
     * @param uid 客服人员 id
     * @return
     */
    PageModel<Custom> queryByServiceId(Custom custom, List<City> cityList, Integer isAllot, Integer pageSize, Integer pageNum, Integer uid);


    /**
     * 通过全名查询客户 id
     * @param customname
     * @return
     */
    List<Integer> queryCustomIdListByCustomnameAjax(String customname);

}
